import axios from 'axios'
import { Toast } from 'vant'

// 定义 baseURL
const baseURL = process.env.NODE_ENV === 'development'
  ? 'http://quanzhan.site:3000'
  : 'http://www.xiongmaoyouxuan.com'
// const baseURL = ''

// 创建 axios 实例
const service = axios.create({
  baseURL,
  timeout: 10000,
})

// 拦截请求
service.interceptors.request.use(config => {
  // 加载提示
  Toast.loading({
    message: '加载中',
    duration: 0,
  })

  // 添加请求头中的 token 认证数据
  // TODO.........

  return config
})

// 拦截响应
service.interceptors.response.use(resData => {
  // 关闭提示
  Toast.clear()

  /*
   * 响应数据处理：根据前后端接口规范来处理数据结构。
   * resData.data 中保存的是后端响应主体的内容。
   * 后端与前端有交互规范，返回的是 JSON 格式的对象，
   * 在对象中当 code 为 200 时，可以从 data 中获取实际
   * 使用的数据，如果 code 不为 200，则可以从 message 中
   * 获取操作错误相关信息。
   */
  if (resData.status === 200) {
    const { code, data } = resData.data
    if (code === 200) {
      return data
    }
  }

  return Promise.reject(new Error('接口请求异常...'))
})

export default service
